const router = require('koa-router')()
const{
    getList,
    getDetail,
    newBlog,
    updateBlog,
    delBlog
}=require('../controller/blog')
const{SuccessModel,ErrorModel}=require('../model/resModel')
const loginCheck=require('../midleware/loginCheck')

//设置一个路由前缀，后面的路由地址都拼接在前缀地址后面
router.prefix('/api/blog')

//获取博客列表
router.get('/list',async function (ctx, next) {
    let author=ctx.query.author||'';
    const keyword=ctx.query.keyword||'';
    if(ctx.query.isadmin){
      console.log('is admin')
        //管理员界面
        if(ctx.session.username==null){
          console.error('is admin, but no login')
            //未登录
            ctx.body=new ErrorModel('未登录');
            return
        }
        //强制查询自己的博客
        author=ctx.session.username
    }

    const listData=await getList(author,keyword)
    ctx.body=new SuccessModel(listData)
})

//获取博客详情
router.get('/detail',async function(ctx,next){
  const data=await getDetail(ctx.query.id);
  ctx.body=new SuccessModel(data)
})

//新建一篇博客
router.post('/new',loginCheck,async function(ctx,next){
    const body = ctx.request.body
    body.author = ctx.session.username
    const data = await newBlog(body)
    ctx.body = new SuccessModel(data)
})

//更新一篇博客
router.post('/update',loginCheck,async function(ctx,next){
    const body=ctx.request.body;
    const val=await updateBlog(ctx.query.id,body);
    if(val){
        ctx.body=new SuccessModel()
    }else{
        ctx.body= new ErrorModel('更新博客失败')
    }
})

//删除一篇博客
router.post('/del',loginCheck,async function(ctx,next){
  const author=ctx.session.username;
  const val=await delBlog(ctx.query.id,author);
  if(val){
    ctx.body=new SuccessModel()
  }else{
    ctx.body= new ErrorModel('删除博客失败')
  }
})

module.exports=router